﻿
//统一返回格式 {errcode:0,errmsg:'',result:{obj} }
//同步调用方式 var r = Data.GetTime();
//异步调用方式 Data.GetTime(function (r) { })

var Domain = location.protocol + '//tatafw.asaplus.com.cn';//接口域名
//EAjax.init({ login: Domain + '/Api/EHandler.ashx?method=Init' });//加密传输初始化

var Data = DataSource({ Domain: Domain }); //JSSDK

function DataSource(o) {

    var t = {};
    o = o || {};

    t.Domain = o.Domain;
    t.Handler = '/Api/Handler.ashx';//基本 Handler 请求地址

    //获取当前服务器时间
    t.GetTime = function (callback) {
        return Ajax(this.Handler, "GetTime", {}, callback);
    }



    //网页授权相关的jssdk功能实现
    t.OAuth = {
        Handler: '/Api/OAuthHandler.ashx',
        OAuth_method: 'SCRM',//默认：SCRM  可选：SCRM,GS,Weibo
        //网页登录授权（通常只使用一种 默认：SCRM）  test=1  可复制链接到PC浏览器上 对浏览器进行授权
        Login: function (callback, test) {
            var x = this.GetUserInfo();
            if (x.errcode == 0) {
                if (callback) callback(x);
                else return x;
            }
            else {
                location.href = GetUrl(this.Handler, this.OAuth_method) + '&link=' + encodeURIComponent(location.href) + (test ? '&test=1' : '');
                return;
            }
        },

        //获取用户信息
        GetUserInfo: function (callback) {
            return Ajax(this.Handler, "GetUserInfo", {}, callback);
        }
    }

    //是否保存过  result true=已保存   false=未保存过
    t.IsSave = function (callback) {
        return Ajax(this.Handler, "IsSave", {  }, callback);
    }

    //发送短信验证码
    t.SendCode = function (Phone, callback) {
        return Ajax(this.Handler, "SendCode", { Phone: Phone }, callback);
    }

    //留资 Name=姓名 Phone=手机号 Code=验证码
    t.Save = function (Name, Phone, Code, callback) {
        return Ajax(this.Handler, "Save", { Name: Name, Phone: Phone, Code: Code }, callback);
    }

    t.AddShare = function (callback) {
        return Ajax(this.Handler, "AddShare", {}, callback);
    }

    //加密 Ajax 请求
    //function EPost(handler, method, data, callback) {
    //    return EAjax.post(GetUrl(handler, method), data, callback);
    //}

    //基于jquery 的 Ajax请求
    function Ajax(handler, method, data, callback) {
        return jq.ajax({
            async: callback ? true : false,
            type: 'POST',           //统一使用POST方式
            url: GetUrl(handler, method),  //请求地址
            contentType: "text/plain",
            data: JSON.stringify(data || {}),       //请求数据
            dataType: 'json',       //返回格式 统一使用json
            success: callback,

            xhrFields: { withCredentials: true } //跨域session
        }).responseJSON;
    }

    function GetUrl(handler, method) {
        return t.Domain + handler + '?method=' + method;
    }

    return t;
}